「世界一流エンジニアの思考法」の内容を実践してみた
生産性を爆上げしたい
おのやんです。
みなさん、生産性を爆上げしたいと思ったことはありませんか?私は毎日の業務に取り組む上で、どうすれば生産性を上げられるか日々考えています。
そんな中出会ったのが、こちらの「世界一流エンジニアの思考法」です。
本書を読んだ際には、「なるほど、こういう取り組み方をすれば生産性を向上させられるのか」とものすごく腹落ちしました。
その後、本書に書かれている内容を私なりに解釈・適用して実践してみました。その結果、目に見えて生産性やアウトプットに変化が見られました。ということで、今回は実際にやってみた取り組みとその変化について、本記事で紹介したいと思います。
本書について
本書を書かれた牛尾さんは、アメリカのマイクロソフトで現役のソフトウェアエンジニアでいらっしゃいます。マイクロソフトで働く同僚の生産性の高さを観察し、彼らが実践していることなどを紹介する内容となっています。
本書全体の感想に関しては、DevelopersIOやその他サイトの記事で多くの方が書いてくださっているので、そちらをご参考ください。
今回は記事の方向性として、「読んでみた感想」ではなく「読んで実践してみた内容と効果」に重点を置きたいと思います。
備考
今回の記事では、筆者本人が本書を独自に解釈して実践してみた内容をまとめています。
本書の内容をどのように理解するかは読者によって大きく異なるため、あくまで筆者個人による実践例として捉えていただければ、と思います。
実践してみた内容
本書に書かれている内容の中で、私が業務で実践してみたのは以下の4点です。このうち数点はまとめて実践できますが、順番に紹介していきます。
- 成果ではなく時間で作業を区切る
- 時間を固定して、できることを最大化する
- レベル1の知識を増やす
- 理解に時間をかける
成果ではなく時間で作業を区切る・時間を固定して、できることを最大化する
本書では、長時間労働で生産性が低下するのを予防したり、業務外の学習時間を確保するなどの観点から、「タイムボックス」という概念が紹介されていました。これは、成果ではなく時間で作業を区切る方法です。
作業の節目ではなく、絶対的に「仕事の終わりを迎える」必要がある。
ソリューションは簡単だった。「タイムボックス」制だ。
例えば、5時になったら仕事が途中でも、どんなに切りが悪くても、すぐに仕事をやめる。いつの間にか時間が過ぎてしまわないよう、5時きっかりにアラームをセットして。
本書におけるタイムボックスの考え方では、まず強制的に時間を区切ることで業務外の時間を十分に捻出します。その時間をランニングなどの運動やギターなどのリフレッシュ活動、十分な睡眠などに充てます。こうすることで生活習慣を改善させて、業務の生産性を向上させる、というものになります。
また同様に、作業の時間を固定してできることを最大化する取り組みも紹介されていました。
海外のチームメイトを観察していると、「すべき」から時間を計算するのではなく、時間を固定して、その中で価値を最大化するという行動をとっている。
私はこの考えや取り組み方をアレンジして、Google カレンダー上で実践してみました。具体的には、1日の業務が始まる朝のタイミングで、その日に取り組む作業を先にスケジュールして突っ込んでおきます。そして、実際に作業を行う際には時間内に収めるよう努めます。もし作業中に規定時間を超えた場合は、そこで作業を終了します。(※ 弊社は業務時間中にブログ執筆を行なってもOKという規則になっているので、ブログ執筆時間もスケジュールに入っています。ここは所属企業などにより異なるかと思います)
実際にやってみたところ、明らかに作業効率が向上するのを実感できました。「時間内に作業を収めるように努める」というのがポイントで、終了時間が事前に明示されているため、この時間までに終わらせようと自然に意識します。規定時間を超えそうな作業は、なんとなく「間に合わないな」とわかるので、今回で終わらせる作業と次回以降に実施する作業を判断して明確に区別することになります。また作業が間延びしなくなるので、頭の使い過ぎも防ぐことができます。これにより、結果的に「生産性が高い」作業になりました。
実際にこちらを実践し始めた時は、私が担当していた案件で大きめの作業がありました。この作業時にあらかじめスケジュールを決めておくことで、想定外のエラーなどにぶつかっても速攻で対応できました。以前と比べて作業効率が大幅に改善している感覚がありました。
メンターとして見てくださっている先輩からもお褒めの言葉をいただいたので、実際に効果があったと考えていいと思います。
また、2024年2月の前半は比較的作業に余裕があったので、同様のやり方でGoogle カレンダー上でブログ時間を突っ込んで執筆していました。こちらも、短期間で複数の記事を書くことができたので、ある意味では生産性が向上したのでは、と思います。
レベル1の知識を増やす・理解に時間をかける
本書では、理解には時間がかかるとした上で、自分でググらずに説明できるレベルの知識、レベル1の知識を身につけることの重要性が説かれていました。仕事の難易度をレベル1〜レベル4まで分類して、何もググらずに即座に実装できる「レベル1」の知識を増やすことで、脳の負荷を減らすという内容です。
そこでふと、生産性とはいかに「レベル1」を増やすかではないか
(中略)
レベル2案件をレベル1に向上させた方が生産性が高いのではないかという気づきを得た。
本書は、米マイクロソフトでAzureを実装している牛尾さんによって執筆されました。そのため、本文はプログラミングを主軸に書かれています。実際に、本書ではレベル1の知識として、プログラミング言語の理解などが引き合いに出されています。
それでは、AWSエンジニアである私にとってレベル1の知識とは何でしょうか?本書の内容を自身に当てはめた結果、クラウドを支えるさまざまな基礎技術だと解釈しました。クラウドを支えるさまざまな基礎技術とは、すなわちネットワーク、OS、Linuxサーバー、システム開発などです。
このような知識をレベル1にするために私が取り組んでいる事のひとつが読書です。特に最初に読む技術書は、できる限り平易で簡潔な記述がされてある入門書を選ぶようにしています。
本書にも言及がありますが、自分にとって難しすぎると感じるものは、脳を酷使している状態だといいます。
自分にとって難しすぎると感じるときは、たいてい脳の使い方が間違っているサインだ
また、知識の理解に時間をかける重要性についても同様に述べられています。
どんなに頭がいい人でも理解には時間がかかるものなのだ。頭のいい人が理解が早いように見えるのは、そうやって時間をかけて基礎を積み重ねているので、既に理解していることに関して頭のメモリにコンテキスト(文脈)が載っているからだ。
私は、これらの考えは技術書の読書にも適用できると解釈しました。
たとえIT業界で名著として知られている技術書であっても、自分のレベルに合っていなければ、その読書は脳を酷使することになります。これを防ぐために、技術書を購入する際は書店に出向いて試し読みを行い、書いてある内容・著者のいい回し・ページのレイアウト・文字のフォント・イラストの有無などを確認するようにしました。そうして、楽にスイスイ読み進められるような技術書を購入して、それを時間をかけてじっくりと読み進めたのです。
直近では、ネットワークの知識をレベル1にするために、[改訂新版] 3分間ネットワーク基礎講座を読みました。初心者にも分かりやすいように話し口調で読み進められるため、最初の理解にピッタリでした。
クラウドからネットワーク触り出した民ですけど、この本むちゃ良かったです(ネットでも無料で見られるそうです👍)
OSI参照モデルの概要とか、それらが実機でどう活かされているか掴めました
これ読んだ後にマスタリングTCP/IP読むと理解度ぜんぜん違うので超オススメですhttps://t.co/kmFfX5uROE— おのやん(おっしゃん) (@oshanQQ_) February 12, 2024
この効果として、ネットワークに関する他の書籍やブログ記事、社内の技術的なやりとりなどがスッと頭に入ってくるようになりました。その場でググり続けるのではなく、いったん腰を据えて理解に時間をかけるようにして、知識をレベル1にまでもってくることが重要だと感じました。それが、情報処理の速度、ひいては生産性の向上につながるのだと思います。
さきほど紹介したタイムボックス時間術は、生産性向上に関して比較的即効性がありました。一方で、知識をレベル1の状態まで時間をかけて持っていくアプローチは、継続して積み上げることではじめて効果が出てくるものだと思っています、そのため、読書をはじめとする技術力の研鑽に引き続き取り組み、その中で生産性をじっくり上げていこうと思います。
自分に合ったやり方で生産性を爆上げしよう
ひとつの書籍をとっても、その解釈は人によって全く異なります。今回本書を読んで、私は上記で紹介した解釈のもと行動を変えてみました。そうした結果、生産性の向上を実感できています。
今回紹介した内容は、本書のほんの一部です。みなさんもぜひ一度本書を読んで、自分に合ったやり方で実践していただければと思います。では!